import weRequest from 'we-request';
const setRequestInit=(baseUrl)=>{
    weRequest.init({
        sessionName: "token",
        urlPerfix:baseUrl,
        codeToSession: {
            url: '/api/user/login',
            method: 'GET',
            codeName: 'code',
            data: {
                token: wx.getStorageSync('token'),
            },
            success: function (data, res) {
                wx.setStorageSync('userInfo', data.data)
                return data.data.token;
            },
            fail: function (data, res) {
                wx.showToast({
                    title: res.data.msg,
                    icon: 'none'
                })
            },
            complete: function (data) {
                console.log('complete', data);
            }
        },
        loginTrigger: function (res) {
            return res.code == 401;
        },
        reLoginLimit: 3,
        successTrigger: function (res) {
            return res.code == 1;
        },
        // [可选] 当CGI返回错误时，弹框提示的标题文字
        errorTitle: function (res) {
            // 此处例子：当返回数据中的字段errcode等于0x10040730时，错误弹框的标题是“温馨提示”，其他情况下则是“操作失败”
            return '操作失败'
        },
        // [可选] 当CGI返回错误时，弹框提示的内容文字
        errorContent: function (res) {
            return res.msg ? res.msg : '网络请求出错';
        },
        isFixSuccessCompleteTiming: true
    });
};
/**
 * get请求
 */
function get(url,data={},loading=null,isShowModel=false) {
    if(loading)wx.showLoading({title: loading})
    return new Promise((resolve, reject) => {
        weRequest.request({
            url,
            header: {
                'content-type': 'application/json'
            },
            data,
            success: function (res) {
                resolve(res);
            },
            fail: function (error) {
                let msg=error && error.data && error.data.msg?error.data.msg:'网络错误';
                if(isShowModel){
                    wx.showModal({
                        title: '温馨提示',
                        content: msg,
                        showCancel: false
                    });
                }else{
                    wx.showToast({title: msg,icon: 'none'})
                }
                reject(error);
            },
            complete:function(){
                if(loading)wx.hideLoading()
            }
        })
    })
}
function post(url,data={},loading=null,isShowModel=false) {
    if(loading)wx.showLoading({title: loading})
    return new Promise((resolve, reject) => {
        weRequest.request({
            url,
            header: {
                'content-type': 'application/x-www-form-urlencoded',
            },
            method: 'POST',
            data,
            success: function (res) {
                resolve(res);
            },
            fail: function (error) {
                let msg=error && error.data && error.data.msg?error.data.msg:'网络错误';
                if(isShowModel){
                    wx.showModal({
                        title: '温馨提示',
                        content: msg,
                        showCancel: false
                    });
                }else{
                    wx.showToast({title: msg,icon: 'none'})
                }
                reject(error)
            },
            complete:function(){
                if(loading)wx.hideLoading()
            }
        })
    });
}

const api = {
    //上传文件 
    upload(){
        return weRequest.getConfig().urlPerfix+'/api/common/upload';
    },
    //首页基础信息
    getToken() {
        return get("/api/user/getToken");
    },
    // 基础用户信息 
    getUsers(){
        return get("/api/mine/index", {}, '加载中...');
    },
    // 修改会员个人信息 
    profileUsers(data){
        return post("/api/user/profile", data, '加载中...');
    },
    //首页基础信息
    homeIndex() {
        return get("/api/index/index", {}, '加载中...');
    },
    // 获取基础富文本信息
    getBaseIntro(type) {
        return post("/api/index/get_base_intro", {type}, '加载中...');
    },
    //获取手机号码
    getPhone() {
        return get("/api/user/decodePhone", {}, '获取中...');
    },
    //用户预约列表
    appointmentList(query){
        return get('/api/appointment/get_list',query,'加载中...')
    },
    //添加预约信息
    appointmentSubmit(data){
        return post('/api/appointment/add',data,'加载中...',true)
    },
    //获取一二级分类
    shoppingCategroy(query){
        return get('/api/shopping/get_categroy',query,'加载中...')
    },
    //获取善品列表
    shoppingList(query){
        return get('/api/shopping/get_goods_list',query,'加载中...')
    },
    //获取善品详情
    goodsDetail(goods_id,lat=null,lng=null){
        let data={goods_id};
        if(lat)data.latitude=lat;
        if(lng)data.longitude=lng;
        return get('/api/shopping/get_goods_detail',data,'加载中...')
    },
    //添加购物车
    addCart(goods_id){
        return get('/api/shopping/add_cart',{goods_id},'加载中...',true)
    },
    //添加购物车
    delCart(cart_ids){
        return get('/api/cart/delete',{cart_ids},'加载中...',true)
    },
    //购物车下单
    orderCart(data){
        return post('/api/cart/create_order',data,'加载中...',true)
    },
    //商品下单 
    orderCreate(data){
        return post('/api/shopping/create_order',data,'加载中...',true)
    },
    //购物车列表
    cartList(){
        return get('/api/cart/index',{},'加载中...')
    },
    //积分信息
    IntegralIndex(){
        return get('/api/integral/index',{},'加载中...')
    },
    //积分信息
    integralList(query){
        return get('/api/integral/get_list',query,'加载中...')
    },
    //积分信息
    integralSign(){
        return get('/api/integral/sign',{},'加载中...')
    },
    // 余额明细 
    moneyList(query){
        return get('/api/money/get_list',query,'加载中...')
    },
    getMobile(query){
        return post('/api/user/decodePhone',query,'加载中...')
    }, 
    //我的订单  
    getOrderList(query){
        return get('/api/order/get_order_list',query,'加载中...')
    },
    //我的订单闲情  
    getOrderDetail(order_no){
        return get('/api/order/get_order_detail',{order_no},'加载中...')
    },
    // 未支付时取消订单 
    cancelOrder(query){
        return get('/api/order/cancel_order',query,'加载中...',true)
    },
    // 删除订单 
    delOrder(query){
        return get('/api/order/delete_order',query,'加载中...',true)
    },
    // 未支付订单重新发起支付 
    againPalyOrder(query){
        return get('/api/order/again_pay',query,'加载中...',true)
    },
    // 订单核销
    hxOrder(query){
        return get('/api/order/hx_order',query,'加载中...',true)
    },
    //  门店地区列表 
    getAreaList(){
        return get('/api/store/get_area_list',{},'加载中...')
    },
    //  门店列表 
    getStoreList(data){
        return get('/api/store/get_list',data,'加载中...')
    },
    //  门店详情 
    getStoreDetail(query){
        return get('/api/store/get_store_detail',query,'加载中...')
    },
    //商品可用门店
    getStoreGoodsList(query){
        return get('/api/store/get_goods_store_list',query,'加载中...')
    },
    // 就诊人列表数据 
    patientList(query){
        return get('/api/patient/get_list',query,'加载中...')
    },
    //添加就诊人 
    patientAdd(data){
        return post('/api/patient/add',data,'加载中...',true)
    },
    //编辑就诊人信息  
    patientEdit(data){ 
        return post('/api/patient/edit',data,'加载中...')
    },
    //删除就诊人信息 
    patientDel(data){
        return post('/api/patient/del',data,'加载中...')
    },
    //详情数据 
    patientDetail(query){
        return get('/api/patient/get_detail',query,'加载中...')
    },
    //门店列表选择-就诊人新增选择 
    patientStortList(){
        return get('/api/store/get_select_store',{},'加载中...')
    },
    //提交投诉 
    setComplaint(data){
        return post('/api/mine/complaint',data,'加载中...',true)
    },
    //获取订单核销二维码 
    getHxQrcode(order_no){
        return get('/api/order/get_hx_qrcode',{order_no},'加载中...')
    },
    //医生团队 
    doctorList(query){
        return get('/api/doctor/get_list',query,'加载中...')
    },
    doctorDetail(query){
        return get('/api/doctor/get_doctor_detail',query,'加载中...')
    },
    //  切换默认就诊人
    changePatient(query){
        return get('/api/patient/change_patient',query,'加载中...')
    },
    // 客服电话
    kfPhone(){
        return get('/api/index/get_kefu_phone',{},'加载中...')
    },
    //获取核销订单详情 
    getOrderHxDetail(order_id){
        return get('/api/hx/index',{order_id},'加载中...')
    },
    // 订单确认核销 
    submitOrderHx(order_id){
        return get('/api/hx/hx',{order_id},'加载中...',true)
    },
    // 卡卷列表 
    couponList(query){
        return get('/api/coupon/get_list',query,'加载中...')
    },
    // 卡卷核销
    couponQrcode(coupon_id){
        return get('/api/coupon/get_hx_qrcode',{coupon_id},'加载中...')
    }, 
    // 卡卷核销
    couponQrcodeDetail(coupon_id){
        return get('/api/coupon/get_coupon_detail',{coupon_id},'加载中...')
    },
    couponLq(coupon_id){
        return post('/api/coupon/transfer_qrcode',{coupon_id},'加载中...',true)
    }, 
    submitOrdercoupon(coupon_id){
        return post('/api/hx/hx_coupon',{coupon_id},'加载中...',true)
    }
};

module.exports = {
    api,
    setRequestInit
}